///@file MVDataAgent.h 定义 CMVDataAgent 接口类
#ifndef _MVDATA_AGENT_H_
#define _MVDATA_AGENT_H_

#include "MVData.h"
#include <string>

class CMVData;

///@brief 接口类，定义持久化类的接口，用于扩展多种持久化方法
class CMVDataAgent
{
//============================== 一般方法 ====================================
public:
	///@brief 工厂方法，按照指定的持久化方法创建新的操作对象
	static CMVDataAgent * CreateMVDataAgent( CMVData * mvdata, TYPE_MVDATA_STORE type, const std::string dataname );

	virtual ~CMVDataAgent();

protected:
	///@brief  不允许直接创建对象，要通过工厂方法
	CMVDataAgent( CMVData * mvdata, const std::string dataname );
	CMVDataAgent();

public:
	///@brief Interface，读出数据到 CMVData
	virtual int ReadMVData() = 0;

	///@brief Interface，将 CMVData 中的数据写入
	virtual int WriteMVData() = 0; 
	
	///@brief Interface，关闭当前数据
	virtual int Close() = 0;

//============================== 类成员 ====================================
protected:
	///@brief 与之绑定的 CMVData ，在对象创建时绑定
	CMVData * m_pMVData;
	
};

#endif // _MVDATA_AGENT_H_